<?php
declare (strict_types = 1);

namespace app\controller;

use app\validate\CheckType;
use think\exception\ValidateException;
use think\Request;

class Type
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $data=(new \app\model\Type())->getTypeData();
        return view('index/list',['data'=>$data]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        $typeData=(new \app\model\Type())->getType();
        return view('index/addTypeShow',['data'=>$typeData]);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        try {
            validate(CheckType::class)->check($request->all());
        }catch (ValidateException $exception){
            return json([
                'msg'=>$exception->getMessage(),
                'code'=>500,
                'data'=>''
            ]);
        }
        $data=$request->all();
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('image');
        // 上传到本地服务器
        $savename = \think\facade\Filesystem::disk('public')->putFile( 'img', $file);
        $image = \think\Image::open($savename);
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
        $image->thumb(200, 200)->water('C:\Users\夏天\Desktop\屏幕截图 2021-12-16 094628.jpg')->save($savename);
        $data['image']=$savename;
        return redirect('list');
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res=(new \app\model\Type())->delAll($id);
        if($res){
            return json([
                'msg'=>'',
                'data'=>'',
                'code'=>200
            ]);
        }
        return json([
            'msg'=>'',
            'data'=>'',
            'code'=>500
        ]);
    }
}
